package gui;

import java.awt.*;
import java.util.ArrayList;

import javax.swing.*;

import weerapp.meet.*;


@SuppressWarnings("serial")
public class GrafiekView extends JPanel {
	private GrafiekBox grafiekBox;
	private GrafiekPanel grafiekPanel;
	private Meetgegevens gegevens;
	
	public GrafiekView()
	{			
		setLayout(new BorderLayout());
		this.gegevens = new Meetgegevens("twente.txt");
		this.setLayout(new BorderLayout());
		grafiekBox = new GrafiekBox(gegevens, this);
		loadWaarnemingen("1951", "maart");	
		
		add(grafiekBox, BorderLayout.NORTH);
		add(grafiekPanel, BorderLayout.CENTER);
	}
	
	public GrafiekBox getGrafiekBox(){
		return grafiekBox;
	}
	
	public void loadWaarnemingen(String jaar, String maand)
	{		
		ArrayList<Waarneming> waarnemingen = new ArrayList<Waarneming>();
		Waarneming w = null;
		for(int x = 0; x < 31; x++){
			w = gegevens.getWaarneming(x, getMaand(maand), Integer.parseInt(jaar));
			if(w != null){
				waarnemingen.add(w);
			}
		}
		if(grafiekPanel != null){
			this.remove(grafiekPanel);
		}
		grafiekPanel = new GrafiekPanel(waarnemingen);		
		this.add(grafiekPanel, BorderLayout.CENTER);
		this.revalidate();
	}
	
	private int getMaand(String maand)
	{
		if(maand.equalsIgnoreCase("januari")){
			return 1;
		}else if(maand.equalsIgnoreCase("februari")){
			return 2;
		}else if(maand.equalsIgnoreCase("maart")){
			return 3;
		}else if(maand.equalsIgnoreCase("april")){
			return 4;
		}else if(maand.equalsIgnoreCase("mei")){
			return 5;
		}else if(maand.equalsIgnoreCase("juni")){
			return 6;
		}else if(maand.equalsIgnoreCase("juli")){
			return 7;
		}else if(maand.equalsIgnoreCase("augustus")){
			return 8;
		}else if(maand.equalsIgnoreCase("september")){
			return 9;
		}else if(maand.equalsIgnoreCase("oktober")){
			return 10;
		}else if(maand.equalsIgnoreCase("november")){
			return 11;
		}else if(maand.equalsIgnoreCase("december")){
			return 12;
		}else{
			return 0;
		}
	}
	
	public Rectangle getRectangleBounds(){
		Rectangle rect = new Rectangle(getX(), getY(), getWidth(), getHeight());
		return rect;
	}
}
